package br.ufpi.esii.reqg.entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;

import br.ufpi.esii.reqg.enums.Complexidade;
import br.ufpi.esii.reqg.enums.Prioridade;
import br.ufpi.esii.reqg.enums.SituacaoDoCasoDeUso;

@Entity
@Inheritance( strategy = InheritanceType.TABLE_PER_CLASS )
public abstract class Item {

	@Id
	private Long id;

	@Column( nullable = false, unique = true )
	private String identificador;

	@Column( nullable = false )
	private String nome;

	@Column( nullable = false )
	private String descricao;

	@Column( nullable = false )
	private Prioridade prioridade;

	@Column( nullable = false )
	private Complexidade complexidade;

	@Column( nullable = false )
	private SituacaoDoCasoDeUso situacao;

	public Item() {
		super();
	}

	public Long getId() {
		return id;
	}

	public void setId( Long id ) {
		this.id = id;
	}

	public String getIdentificador() {
		return identificador;
	}

	public void setIdentificador( String identificador ) {
		this.identificador = identificador;
	}

	public String getNome() {
		return nome;
	}

	public void setNome( String nome ) {
		this.nome = nome;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao( String descricao ) {
		this.descricao = descricao;
	}

	public Prioridade getPrioridade() {
		return prioridade;
	}

	public void setPrioridade( Prioridade prioridade ) {
		this.prioridade = prioridade;
	}

	public Complexidade getComplexidade() {
		return complexidade;
	}

	public void setComplexidade( Complexidade complexidade ) {
		this.complexidade = complexidade;
	}

	public SituacaoDoCasoDeUso getSituacao() {
		return situacao;
	}

	public void setSituacao( SituacaoDoCasoDeUso situacao ) {
		this.situacao = situacao;
	}

}